package com.gdust.hzx.manager.mapper;

import com.gdust.hzx.model.entity.system.SysMenu;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

/**
 * ClassName: SysMenuMapper
 * Package: com.gdust.spzx.manager.mapper
 * Description:
 *
 * @Author syun
 * @Create 2024/11/24 15:45
 * @Version 1.0
 */
@Mapper
public interface SysMenuMapper {
    /**
     * 查询所有菜单，返回list集合
     * @return 返回菜单的集合
     */
    List<SysMenu> findAll();

    /**
     * 添加菜单
     * @param sysMenu 返回菜单的集合
     */
    void save(SysMenu sysMenu);

    /**
     * 修改菜单
     * @param sysMenu 返回菜单的集合
     */
    void update(SysMenu sysMenu);

    /**
     * 根据当前菜单id，查询是否包含子菜单
     * @param id 菜单的唯一标识（路径参数）
     * @return 当前菜单id
     */
    int selectCountById(Long id);

    /**
     * 删除菜单
     * @param id 当前菜单id
     */
    void delete(Long id);

    /**
     * 根据userId查询可以操作菜单
     * @param userId 用户id
     * @return 系统菜单实体类集合
     */
    List<SysMenu> findMenusByUserId(Long userId);

    /**
     * 获取当前添加菜单的父菜单
     * @param parentId 父节点id
     * @return 系统菜单实体类
     */
    SysMenu selectParentMenu(Long parentId);
}
